With the advent of Cloud computing, telecom vendors have begun the process of virtualizing their solution and making them cloud enabled so that they can be deployed in private and/or public clouds of telecom operators. Easy as it may seem, there are many challenges in deploying the solution “as is” in a cloud cluster.
Any Telecom Server (Switch, Gateway, SBC, etc.) will have a large number of resources for call handling, call routing, transcoding, etc. Some of the resources are call limit, license count, bandwidth, allowed number of transcoders, minimum call Key Parameter Index (KPI) required, etc.
One of the fundamental challenges faced in a Cloud based distributed environment is that of resource distribution among the different Nodes that make up the cloud cluster.
In a single box model deployment of a network function, the box has full information about resource utilization (e.g.: call count) hence applying resource management (e.g.: Call Admission Control) is straight forward. But in a cloud environment, a network function typically will be composed of many instances of network function working in tandem. To apply resource management efficiently, each network function needs to know the current resource count (e.g.: current call count) in the whole cluster at that moment. However, getting real time resource utilization information in cloud is difficult because of the inherent distributed nature of the cloud. This problem is further compounded by the fact that the cloud cluster can scale-in or scale-out based on the traffic.
Some approaches that can be adopted for Cloud based Resource Management are listed below, each approach has problems and/or limitations. One approach is to statistically distribute resources across the cloud. However, since it is not guaranteed that the traffic will come uniformly to all instances, there may be many call rejections even much before the configured max call limit is reached. In another approach a central entity is deployed to keep track of resource usage count across the cloud. In this approach each instance requests to the central entity whether to proceed or reject a call. This approach will introduce a significant amount of delay with regard to call processing. In yet another approach entities synch their usage to one another. In this approach where each instance synchs its resource usage count to all other instances in the Cloud, in a frequent manner, there will build up a lot of intra cloud messages for supporting resource management.
Based on the above discussion there is a need for new methods and apparatus for supporting resource management, e.g., in a Cloud environment. It would be advantageous if at least some of these new methods and apparatus implemented efficient resource management in environments where non-uniform traffic may be expected, with relatively small call processing delays, and/or without a lot of control messaging being required.